package Ep03_HashTable._0088;

import java.util.Arrays;

/**
 * @author Jimmy Zhan WORKSTATION
 * @date 2023/3/10 17:13
 * 说明： 力扣 0088 合并两个有序数组     使用辅助数组 res，时间代价为： O(m+n)
 */

public class Mine {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        if (n == 0) return;
        if (m == 0){
            for (int i = 0; i < n; i++) {
                nums1[i] = nums2[i];
            }
            return;
        }

        int[] res = new int[m+n];
        int p1 = 0, p2 = 0;
        for (int i = 0; i < m+n; i++) {
            if (p1 == m){
                res[i] = nums2[p2];
                p2++;
                continue;
            }
            if (p2 == n){
                res[i] = nums1[p1];
                p1++;
                continue;
            }
            if (nums1[p1] <= nums2[p2]){
                res[i] = nums1[p1];
                p1++;
            } else {
                res[i] = nums2[p2];
                p2++;
            }
        }
        for (int i = 0; i < nums1.length; i++) {
            nums1[i] = res[i];
        }
    }
}
